package com.itheima.d1_create;

    /*
    目标：多线程的创建方式一：继承Thread来实现
    1.定义一个子类MyThread继承线程类java.lang.Thread,重写run()方法
    2.创建MyThread类的对象
    3.调用线程对象的start()方法启动线程（启动后还是1执行run方法）
    * */
    //优点:编码简单
    //缺点:线程类已经继承Thread,无法继承其他类，不利于扩展。
   /* 警惕
      1.不能把主线程任务放在子线程前面不然会直接把主线程执行完才执行子线程破坏了公平性
      导致无法同时执行
      2.调用run方法只会当成普通方法执行，那么相对于单线程，只有调用start方法
      才是启动一个新的线程执行
      */

//多次运行后可以看到，虽然主线和子线同时运行，但是在控制台输出是随机的，有时候是主线程快有时候是子线程快

public class ThreadDemo1 {
    public static void main(String[] args) {

        //3.new一个新线程对象
        Thread t = new MyThread();
        //4.startdiao'y方法启动线程（执行的还是run方法）
        t.start();

        for (int i = 0; i < 5; i++) {
            System.out.printf("主线程执行输出" + i);
        }
    }
}

    /*
    1.定义应该线程类来继承Thread类
    */
class MyThread extends Thread{
        /*
           2.重写run方法，里面是定义线程以后要干啥
        */
        @Override
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.printf("子线程执行输出" + i);
            }
        }
    }

